The present invention relates generally to communication systems of coded data and, more specifically, to an improvement in the first interleaver of a two interleaver transmitter.
Although the present invention will be described with respect to code division multiple access (CDMA) system, the same method can be used on other interleavers in other systems. General and specific references will also be made to the CDMA standard 3GPP TS 25.212: “Multiplexing and channel coding (FDD)”.
Interleaving is an important function specific to the most digital communication protocols. It provides the means to undermine the burst noise that frequently affects the quality of reception in the digital communication systems as discussed by K. S. Andrews, C. Heegard, and D. Kozen in A Theory of Interleavers, Technical Report TR97-1634, Department of Computer Science, June 1997; and Chris Heegard and Stephen B. Wicker in Turbo Coding, Kluwer Academic Publishers, 2000.
Bit wise block interleavers represent a tremendous challenge for programmable micro-computing machines. An efficient software implementation for the interleavers offers multiple advantages, such as re-programmability, power and computation efficiency, fast development time, and eliminating the need for dedicated hardware block.
Specific to CDMA communication protocol, the first block interleaver function deals with block sizes containing a variable number of bits depending on the propagation conditions. Although padding bits in the second interleaver followed by pruning is common, there is no discussion of padding bits in the first interleaver.
The present invention involves padding the bit sequence in the first interleaver. The present method adds to an end of the bit sequence a sufficient number of padded bits L to permit modulus 16 operation of the bit sequence. After performing the interleaving, L bits are removed from an end of the interleaved sequence. This allows the interleaving to be performed in 16-bit segments simultaneously.
The adding can include adding randomly alternating zero and one bits. The number of L bits is determined by:L=16−Mod16(Xi)where, Mod16 represent modulus sixteen operation, and Xi is the input bit sequence.
The method applies to any block size and executes 16 bits or multiples of 16 bits interleaving at once. The interleaving is performed in software and without forming a matrix of the bit sequence. The toll paid is a small number of errors introduced by this method. The errors are corrected at the receiver by the forward error correcting (FEC) function.
These and other aspects of the present invention will become apparent from the following detailed description of the invention, when considered in conjunction with accompanying drawings.